diff --git a/system/codeigniter/Base5.php b/system/codeigniter/Base5.php
index 0d036fa..d1531a5 100644
--- a/system/codeigniter/Base5.php
+++ b/system/codeigniter/Base5.php
@@ -1,54 +1,54 @@
-<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
-/**
- * Code Igniter
- *
- * An open source application development framework for PHP 4.3.2 or newer
- *
- * @package		CodeIgniter
- * @author		Rick Ellis
- * @copyright	Copyright (c) 2006, pMachine, Inc.
- * @license		http://www.codeignitor.com/user_guide/license.html
- * @link		http://www.codeigniter.com
- * @since		Version 1.3
- * @filesource
- */
-
-
-// ------------------------------------------------------------------------
-
-/**
- * CI_BASE - For PHP 5
- *
- * This file contains some code used only when Code Igniter is being
- * run under PHP 5.  It allows us to manage the CI super object more
- * gracefully than what is possible with PHP 4.
- *
- * @package		CodeIgniter
- * @subpackage	codeigniter
- * @category	front-controller
- * @author		Rick Ellis
- * @link		http://www.codeigniter.com/user_guide/
- */
-
-class CI_Base {
-
-	private static $instance;
-
-	public function CI_Base()
-	{
-		self::$instance =& $this;
-	}
-
-	public static function &get_instance()
-	{
-		return self::$instance;
-	}
-}
-
-function &get_instance()
-{
-	return CI_Base::get_instance();
-}
-
-
+<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 4.3.2 or newer
+ *
+ * @package		CodeIgniter
+ * @author		Rick Ellis
+ * @copyright	Copyright (c) 2006, EllisLab, Inc.
+ * @license		http://www.codeignitor.com/user_guide/license.html
+ * @link		http://www.codeigniter.com
+ * @since		Version 1.3
+ * @filesource
+ */
+
+
+// ------------------------------------------------------------------------
+
+/**
+ * CI_BASE - For PHP 5
+ *
+ * This file contains some code used only when CodeIgniter is being
+ * run under PHP 5.  It allows us to manage the CI super object more
+ * gracefully than what is possible with PHP 4.
+ *
+ * @package		CodeIgniter
+ * @subpackage	codeigniter
+ * @category	front-controller
+ * @author		Rick Ellis
+ * @link		http://www.codeigniter.com/user_guide/
+ */
+
+class CI_Base {
+
+	private static $instance;
+
+	public function CI_Base()
+	{
+		self::$instance =& $this;
+	}
+
+	public static function &get_instance()
+	{
+		return self::$instance;
+	}
+}
+
+function &get_instance()
+{
+	return CI_Base::get_instance();
+}
+
+
 ?>
\ No newline at end of file
